﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace StyleMVVM.Validation
{
	public static class IValidationRuleResultExtensions
	{
		public static string FullRuleName(this IValidationRuleResult ruleResult)
		{
			return ruleResult.Namespace + "." + ruleResult.RuleName;
		}
	}

	public interface IValidationRuleResult
	{
		string Namespace { get; }

		string RuleName { get; }

		object ValidationObject { get; }

		string DisplayName { get; }

		ValidationState State { get; }

		string Message { get; }

		string RootPropertyPath { get; set; }

		IEnumerable<IValidationRuleResultPart> ResultParts();
	}
}